home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 050 / tpcmag.arc / FORMAT.PAS < prev    next >
Pascal/Delphi Source File  |  1986-05-19  |  1KB  |  46 lines

  1. Program FormatDemo ;
  2.    {from PC Magazine page 267 dated June 10, 1986 by Michael G. Weiss
  3.      of Dallas TX.
  4.      Routines reformat numbers by adding commas or providing parens around negative numbers.
  5.      Works with version 2 TurboPascal.
  6.    }
  7. type   Str32 = string[32];
  8. var    Number : real;
  9.  
  10. function Comma (Number:real; Field:integer; Dec:integer) : Str32 ;
  11.   var hold : str32;
  12.       i    : integer;
  13. begin
  14.   str(number:field:dec, hold);
  15.   if dec > 0 then dec := dec + 1;
  16.   for i := 1 to (field - dec - 3) do
  17.     if ((field - dec - i) mod 3 = 0) and (hold[i] <> ' ')
  18.          and (hold[i] <> '-') then begin
  19.       delete(hold,1,1);
  20.       insert(',',hold,i);
  21.       end;
  22.     comma := hold;
  23. end; { function Comma (Number:real; Field;integer; Dec:integer) }
  24.  
  25. function PosNeg (number:real; field:integer; round:integer): str32;
  26.   var hold : str32;
  27. begin
  28.   hold := comma (number,field,round);
  29.   delete (hold,1,1);
  30.   if number < 0 then begin
  31.     posneg := hold + ')';
  32.     posneg[pos('-',hold)] := '(';
  33.     end
  34.   else posneg := hold + ' ';
  35. end; { function PosNeg (number:real; field:integer; round:integer) }
  36.  
  37. begin {main}
  38.   while (true) do begin
  39.     write('Enter a real number: '); readln (number);
  40.     writeln(comma(number,16,0));
  41.     writeln(comma(number,16,2));
  42.     writeln(posneg(number,16,0));
  43.     writeln(posneg(number,16,2));
  44.   end;
  45. END.
  46.